#include<stdio.h>

int main()
{

	//三元运算符
	//关系表达式？表达式1：表达式2；
	//关系表达式成立，执行表达式1否则执行表达式2
	int a = 10;
	int b = 20;

	int c = a > b ? a : b;  //值需要赋值给新的变量
	printf("%d\n", c);

		//获取三个变量的最大值
	int a1 = 10;
	int b1 = 20;
	int c1 = 30;
	//先求出两个变量之间的最大值
	int temp = a1 > b1 ? a1 : b1;
	int max = temp > c1 ? temp : c1;
	printf("%d\n", max);

	printf("-----------------------------------\n");

	//逗号运算符
	/*规则：
		从左到右
		最后一个子表达式的结果，是整个表达式的结果
		优先级最低（最后执行）
	*/
	int a3 = 5, b3 = 6, c3 = 7;
	printf("%d, %d, %d\n", a3, b3, c3);

	int i;
	i = 3, ++i, i++, i + 5;//最后一个式子
	printf("%d\n", i);
	//逗号运算符在函数中运用时，整个表达式要括号合并，否则会与函数中的分隔逗号冲突和混淆
	printf("%d\n", (i = 3, ++i, i++, i + 5));//依次运算

	/*一个数字
	变成该数字的绝对值
	除以三取余
	乘以10*/

	int number = 17;
	number = number >= 0 ? number : -number;
	printf("%d\n", number);
	number %= 3;
	printf("%d\n", number);
	number *= 10;
	printf("%d\n", number);

	//等同于下列表达式

	int number1 = 17;
	printf("%d\n", (number1 = number1 >= 0 ? number1 : -number1, number1 %= 3, number1 *= 10));

	//总结：
	//a = a + b, a + c, a + d;   结果为 a + d
	//a = (a + b, a + c, a + d); 结果为括号内式子依次计算后的值


	







	return 0;




}